package com.hibase.core.excel.service;

import com.github.pagehelper.PageInfo;
import com.hibase.core.excel.entity.MdsExcelBizDataDetail;
import com.hibase.core.excel.vo.bizdata.detail.MdsExcelBizDataDetailByImportTemplateSearchVO;
import com.hibase.core.excel.vo.bizdata.detail.MdsExcelBizDataDetailSearchVO;
import com.hibase.core.mybatis.service.BaseService;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * Excel 模板配置详情表 Service
 *
 * @author <a href="mailto:xiongliyi@hichain.com">Ian Xiong</a>
 * @since 1.4.35-V2
 */
@Transactional(readOnly = true, rollbackFor = Exception.class)
public interface MdsExcelBizDataDetailService extends BaseService<MdsExcelBizDataDetail> {

    /**
     * 分页查询
     *
     * @param searchVO 查询条件
     * @return 返回数据集详情数据集
     */
    PageInfo queryPage(MdsExcelBizDataDetailSearchVO searchVO);

    /**
     * 通过ID列表查询业务数据集详情列表
     *
     * @param ids 业务数据集详情唯一标识列表
     * @return 返回业务数据集详情列表
     */
    List<MdsExcelBizDataDetail> selectInIds(Set<String> ids);

    /**
     * 通过ID列表查询业务数据集详情Map
     *
     * @param ids 业务数据集详情唯一标识列表
     * @return 返回业务数据集详情Map<id, entity>
     */
    Map<String, MdsExcelBizDataDetail> findInIdsToMap(Set<String> ids);

    /**
     * 新增数据集详情记录
     *
     * @param entity 数据集详情
     * @return {Boolean}
     */
    boolean saveBizDataDetail(MdsExcelBizDataDetail entity);

    /**
     * 更新数据集详情记录
     *
     * @param entity 数据集详情
     * @return 返回更新记录的行数
     */
    int updateBizDataDetail(MdsExcelBizDataDetail entity);

    /**
     * 通过模板配置Id查询
     *
     * @param searchVO 查询条件
     * @return 返回数据详情分页列表
     */
    PageInfo queryPageByTemplateId(MdsExcelBizDataDetailByImportTemplateSearchVO searchVO);
}
